from zoneinfo import ZoneInfo
from datetime import datetime


def build_utc8_time_range_content(start_timestamp: int, end_timestamp: int) -> str:
    """
    北京时间范围构建
    """
    tz = ZoneInfo('Asia/Shanghai')
    start_time = datetime.fromtimestamp(start_timestamp, tz)
    end_time = datetime.fromtimestamp(end_timestamp, tz)

    total_time = (end_time - start_time).total_seconds() / 3600
    if start_time.date() == end_time.date():
        range_str = f"{start_time.strftime('%Y/%m/%d %H:%M')} - {end_time.strftime('%H:%M')}"
    else:
        range_str = f"{start_time.strftime('%Y/%m/%d %H:%M')} - {end_time.strftime('%Y/%m/%d %H:%M')}"

    return f"{range_str}，共{total_time:.1f}小时，(GMT+08:00) 中国标准时间 - 北京"


PRE_MEET_NOTICE_TEMPLATE = '''
尊敬的${meeting_userid}，您预定的会议即将开始：

    会议主题：${meeting_subject}
    会议时间：${meeting_time}
    腾讯会议号：${meeting_code}
    入会链接: ${meeting_join_url}

    若会议取消或召开时间变化请在“我的预定”中取消预定，释放资源。
    _________________________________________
    科技云会（腾讯版）会议预约平台
    https://yunhui.cstcloud.cn
    支持邮箱：dccloud@cnic.cn
'''


NO_SHOW_NOTICE_TEMPLATE = '''
尊敬的${meeting_userid}：

    您预定的会议

    会议主题：${meeting_subject}
    会议时间：${meeting_time}
    腾讯会议号：${meeting_code}

    已开始30分钟无人进入，会议预定平台自动回收会议资源，并记录1次未参会违约。
    一周内2次未参会违约，从第2次违约时间算起，限制7天内会议预定行为。
    提醒您会议取消或召开时间变化请及时在“我的预定”中取消预定，以便资源的有效利用。
    _________________________________________
    科技云会（腾讯版）会议预约平台
    https://yunhui.cstcloud.cn
    支持邮箱：dccloud@cnic.cn
'''
